গুয়াভা (Guava) লাইব্রেরি Java-তে স্ট্রিং প্রক্রিয়াজাতকরণের জন্য বেশ কিছু শক্তিশালী এবং সুবিধাজনক Strings Utilities সরবরাহ করে। এই ইউটিলিটিগুলি স্ট্রিং ম্যানিপুলেশনকে সহজ, দ্রুত এবং আরও কার্যকরী করে তোলে। গুয়াভা লাইব্রেরির স্ট্রিং ইউটিলিটি ক্লাসগুলো মূলত স্ট্রিংয়ের বিভিন্ন সাধারণ অপারেশন যেমন কনভার্শন, চেকিং, এবং ম্যানিপুলেশনকে দ্রুত এবং পরিষ্কারভাবে সম্পাদন করতে সহায়ক।
গুয়াভা লাইব্রেরির স্ট্রিং ইউটিলিটিগুলির মধ্যে কিছু প্রধান ফিচার:
1. Strings.isNullOrEmpty()
এই মেথডটি স্ট্রিংটি null বা খালি ("") কিনা তা চেক করতে ব্যবহার করা হয়। এটি খুবই কার্যকরী, কারণ এটি স্ট্রিংয়ের উপর সুনির্দিষ্টভাবে দুটি চেক করতে সহায়তা করে, যা সাধারণত অনেক কোডে বারবার করা হয়।
import com.google.common.base.Strings;
public class StringUtilitiesExample {
public static void main(String[] args) {
String str1 = null;
String str2 = "";
System.out.println(Strings.isNullOrEmpty(str1)); // true
System.out.println(Strings.isNullOrEmpty(str2)); // true
System.out.println(Strings.isNullOrEmpty("Hello")); // false
}
}
এখানে, Strings.isNullOrEmpty() স্ট্রিংটি যদি null বা খালি থাকে, তাহলে true রিটার্ন করবে।
2. Strings.nullToEmpty()
এই মেথডটি একটি null স্ট্রিংকে খালি স্ট্রিং ("") এ রূপান্তর করে। এটি তখন কার্যকরী হয় যখন আপনি null স্ট্রিংয়ের সাথে কাজ করতে চান এবং এটিকে খালি স্ট্রিং হিসাবে প্রক্রিয়া করতে চান।
import com.google.common.base.Strings;
public class StringUtilitiesExample {
public static void main(String[] args) {
String str1 = null;
String str2 = "Hello";
System.out.println(Strings.nullToEmpty(str1)); // ""
System.out.println(Strings.nullToEmpty(str2)); // "Hello"
}
}
এখানে, Strings.nullToEmpty() স্ট্রিংটির null মানকে খালি স্ট্রিংয়ে রূপান্তরিত করে, যা পরে নিরাপদভাবে ব্যবহার করা যায়।
3. Strings.padStart()
এই মেথডটি একটি স্ট্রিংকে নির্দিষ্ট দৈর্ঘ্য পর্যন্ত বাম দিক থেকে পূর্ণ (pad) করে। এটি সাধারণত সংখ্যার সামনে শূন্য বা নির্দিষ্ট অক্ষর যোগ করতে ব্যবহৃত হয়।
import com.google.common.base.Strings;
public class StringUtilitiesExample {
public static void main(String[] args) {
String str = "42";
System.out.println(Strings.padStart(str, 5, '0')); // "00042"
}
}
এখানে, Strings.padStart() স্ট্রিংটির দৈর্ঘ্য ৫ পর্যন্ত বাড়াতে শূন্য যোগ করছে।
4. Strings.padEnd()
এই মেথডটি স্ট্রিংকে নির্দিষ্ট দৈর্ঘ্য পর্যন্ত ডান দিক থেকে পূর্ণ (pad) করে। এটি বাম দিকের মতো একইভাবে কাজ করে, তবে এখানে স্ট্রিংটি ডান দিক থেকে পূর্ণ করা হয়।
import com.google.common.base.Strings;
public class StringUtilitiesExample {
public static void main(String[] args) {
String str = "42";
System.out.println(Strings.padEnd(str, 5, '0')); // "42000"
}
}
এখানে, Strings.padEnd() স্ট্রিংটির দৈর্ঘ্য ৫ পর্যন্ত বাড়াতে ডান দিক থেকে শূন্য যোগ করছে।
5. Strings.repeat()
এই মেথডটি একটি স্ট্রিং নির্দিষ্ট সংখ্যক বার পুনরাবৃত্তি করে। এটি মূলত স্ট্রিংটির পুনরাবৃত্তি করতে ব্যবহৃত হয়, যেমন কয়েকটি বার একই স্ট্রিং প্রিন্ট করা।
import com.google.common.base.Strings;
public class StringUtilitiesExample {
public static void main(String[] args) {
String str = "abc";
System.out.println(Strings.repeat(str, 3)); // "abcabcabc"
}
}
এখানে, Strings.repeat() স্ট্রিং "abc" কে ৩ বার পুনরাবৃত্তি করেছে।
6. Strings.commonPrefix()
এই মেথডটি দুটি স্ট্রিংয়ের সাধারণ প্রিফিক্স (common prefix) খুঁজে বের করতে ব্যবহার করা হয়।
import com.google.common.base.Strings;
public class StringUtilitiesExample {
public static void main(String[] args) {
String str1 = "Guava";
String str2 = "Guitar";
System.out.println(Strings.commonPrefix(str1, str2)); // "Gu"
}
}
এখানে, Strings.commonPrefix() দুটি স্ট্রিংয়ের সাধারণ প্রিফিক্স "Gu" রিটার্ন করেছে।
7. Strings.nullToEmpty()
যখন একটি স্ট্রিং null থাকে, তবে তার পরিবর্তে এটি একটি খালি স্ট্রিংয়ে রূপান্তরিত হয়। এটি তখন কার্যকরী হয় যখন আপনি null স্ট্রিংয়ের সাথে কাজ করতে চান এবং এটিকে খালি স্ট্রিং হিসেবে ব্যবহার করতে চান।
import com.google.common.base.Strings;
public class StringUtilitiesExample {
public static void main(String[] args) {
String str1 = null;
String str2 = "Non-null string";
System.out.println(Strings.nullToEmpty(str1)); // ""
System.out.println(Strings.nullToEmpty(str2)); // "Non-null string"
}
}
এখানে, Strings.nullToEmpty() একটি null স্ট্রিংকে খালি স্ট্রিংয়ে রূপান্তরিত করে।
উপকারিতা
- কোডের স্বচ্ছতা: গুয়াভার স্ট্রিং ইউটিলিটি মেথডগুলি কোড লেখা সহজ করে, কারণ সাধারণ স্ট্রিং ম্যানিপুলেশনগুলি সরাসরি উপলব্ধ।
- নিরাপত্তা:
nullচেকের জন্যStrings.isNullOrEmpty()এবংStrings.nullToEmpty()স্ট্রিংগুলি নিরাপদভাবে পরিচালনা করতে সাহায্য করে। - পারফরম্যান্স: স্ট্রিং প্রক্রিয়াজাতকরণের জন্য অপটিমাইজড মেথডগুলি দ্রুত এবং কম মেমরি ব্যবহার করে।
সারাংশ
গুয়াভা লাইব্রেরি Java-তে স্ট্রিং প্রক্রিয়াজাতকরণের জন্য শক্তিশালী এবং সহজে ব্যবহারযোগ্য ইউটিলিটি সরবরাহ করে। এই ইউটিলিটিগুলি স্ট্রিংয়ের null চেক, প্যাডিং, রিপিটিং, কমন প্রিফিক্স খোঁজা ইত্যাদি সাধারণ কাজগুলিকে দ্রুত এবং কার্যকরীভাবে সম্পন্ন করতে সহায়ক। গুয়াভার স্ট্রিং ইউটিলিটি ক্লাস ব্যবহার করলে কোড লেখার সময় সময় এবং প্রচেষ্টা বাঁচানো সম্ভব, পাশাপাশি কোডের কার্যকারিতা ও নিরাপত্তা বৃদ্ধি পায়।
গুয়াভা লাইব্রেরি জাভা ডেভেলপারদের জন্য স্ট্রিং হ্যান্ডলিংয়ের জন্য বেশ কিছু শক্তিশালী এবং কার্যকরী মেথড সরবরাহ করে। স্ট্রিং ম্যানিপুলেশন প্রায় প্রতিটি জাভা অ্যাপ্লিকেশনে গুরুত্বপূর্ণ, এবং গুয়াভা লাইব্রেরি এই প্রক্রিয়াটি আরও সহজ এবং উন্নত করে তোলে।
গুয়াভার স্ট্রিং হ্যান্ডলিং মেথডের বৈশিষ্ট্য
গুয়াভা লাইব্রেরি স্ট্রিং হ্যান্ডলিংয়ের জন্য কিছু বিশেষ ফিচার সরবরাহ করে যা জাভার স্ট্যান্ডার্ড লাইব্রেরির চেয়ে আরও বেশি সুবিধা দেয়। এর মধ্যে সবচেয়ে গুরুত্বপূর্ণ দুটি মেথড হলো Joiner এবং Splitter। এই মেথডগুলি স্ট্রিং ম্যানিপুলেশনকে আরও দ্রুত এবং সহজ করে তোলে।
Joiner
গুয়াভার Joiner ক্লাস স্ট্রিংয়ের একটি集合 বা অ্যারের উপাদানগুলোকে একটি নির্দিষ্ট সেপারেটর দিয়ে যুক্ত করার জন্য ব্যবহৃত হয়। এটি মূলত অনেক স্ট্রিংকে একত্রিত করে একটি নতুন স্ট্রিং তৈরি করতে সাহায্য করে।
উদাহরণ:
import com.google.common.base.Joiner;
public class GuavaJoinerExample {
public static void main(String[] args) {
String[] fruits = {"Apple", "Banana", "Orange"};
// Joiner ব্যবহার করে স্ট্রিং গুলি একত্রিত করা
String result = Joiner.on(", ").join(fruits);
System.out.println(result); // Output: Apple, Banana, Orange
}
}
এখানে, Joiner.on(", ").join(fruits) স্ট্রিং অ্যারের সব উপাদানকে ", " দ্বারা আলাদা করে একত্রিত করেছে। এর ফলে একটি কমা দ্বারা আলাদা করা স্ট্রিং তৈরি হয়েছে।
Splitter
গুয়াভার Splitter ক্লাস স্ট্রিংয়ের একটি বড় পংক্তি (string) কে একটি নির্দিষ্ট সেপারেটর দ্বারা বিভক্ত করতে ব্যবহৃত হয়। এটি বড় স্ট্রিংকে ছোট ছোট অংশে ভাগ করতে সহায়তা করে।
উদাহরণ:
import com.google.common.base.Splitter;
public class GuavaSplitterExample {
public static void main(String[] args) {
String fruits = "Apple, Banana, Orange";
// Splitter ব্যবহার করে স্ট্রিং বিভক্ত করা
Iterable<String> result = Splitter.on(", ").split(fruits);
for (String fruit : result) {
System.out.println(fruit);
}
// Output:
// Apple
// Banana
// Orange
}
}
এখানে, Splitter.on(", ").split(fruits) কমা এবং স্পেস দ্বারা আলাদা করা স্ট্রিংগুলোকে পৃথক পৃথক উপাদানে বিভক্ত করেছে।
অন্যান্য স্ট্রিং ম্যানিপুলেশন মেথড
গুয়াভা লাইব্রেরি আরও কিছু স্ট্রিং ম্যানিপুলেশন মেথড প্রদান করে যা স্ট্রিং পরিচালনাকে আরও সহজ এবং কার্যকরী করে তোলে।
Strings 类
গুয়াভা লাইব্রেরিতে Strings ক্লাস রয়েছে, যা বেশ কিছু স্ট্রিং সম্পর্কিত সহায়ক মেথড সরবরাহ করে। এর মধ্যে কিছু গুরুত্বপূর্ণ মেথড:
isNullOrEmpty: এটি চেক করে যে স্ট্রিংটি
nullঅথবা খালি (empty) কিনা।উদাহরণ:
import com.google.common.base.Strings; public class GuavaStringsExample { public static void main(String[] args) { String str1 = ""; String str2 = null; String str3 = "Hello"; System.out.println(Strings.isNullOrEmpty(str1)); // Output: true System.out.println(Strings.isNullOrEmpty(str2)); // Output: true System.out.println(Strings.isNullOrEmpty(str3)); // Output: false } }nullToEmpty: এটি
nullস্ট্রিংকে একটি খালি স্ট্রিংতে (empty string) রূপান্তরিত করে।উদাহরণ:
import com.google.common.base.Strings; public class GuavaNullToEmptyExample { public static void main(String[] args) { String str1 = null; String str2 = "Hello"; System.out.println(Strings.nullToEmpty(str1)); // Output: (empty string) System.out.println(Strings.nullToEmpty(str2)); // Output: Hello } }
Case Formatting
গুয়াভা লাইব্রেরি স্ট্রিংয়ের কেস (case) পরিবর্তন করার জন্যও কিছু কার্যকরী মেথড প্রদান করে, যেমন toUpperCase এবং toLowerCase। তবে, এটি আরও উন্নত কেস ফরম্যাটিং ফিচারও প্রদান করে।
CaseFormat: এটি স্ট্রিংয়ের কেস পরিবর্তন করতে ব্যবহৃত হয়, যেমন
camelCaseথেকেsnake_caseবা এর বিপরীত।উদাহরণ:
import com.google.common.base.CaseFormat; public class GuavaCaseFormatExample { public static void main(String[] args) { String camelCase = "myVariableName"; String snakeCase = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, camelCase); System.out.println(snakeCase); // Output: my_variable_name } }
এখানে, CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, camelCase) স্ট্রিংটি camelCase থেকে snake_case এ রূপান্তরিত করেছে।
গুয়াভা স্ট্রিং হ্যান্ডলিংয়ের সুবিধা
- সহজ এবং পরিষ্কার কোড:
Joiner,Splitter, এবংStringsক্লাসের মাধ্যমে স্ট্রিং হ্যান্ডলিং অনেক সহজ হয়ে যায়। এটি কোডকে আরও পরিষ্কার এবং পাঠযোগ্য করে তোলে। - কাস্টমাইজেশন:
JoinerএবংSplitterকাস্টম সেপারেটর দিয়ে স্ট্রিং ম্যানিপুলেশন করার সুযোগ দেয়, যা স্ট্রিং হ্যান্ডলিংকে আরও ফ্লেক্সিবল করে তোলে। - প্রদর্শনযোগ্যতা: স্ট্রিংগুলির মধ্যে কেস পরিবর্তন এবং ফরম্যাটিং সহজে করা যায়, যা আরও বোধগম্য এবং ব্যবহারযোগ্য স্ট্রিং তৈরি করতে সাহায্য করে।
গুয়াভা লাইব্রেরির স্ট্রিং হ্যান্ডলিং মেথডগুলি জাভা ডেভেলপারদের স্ট্রিং ম্যানিপুলেশনকে আরও সহজ এবং কার্যকরী করে তোলে, যা কোড লেখার সময় সময় সাশ্রয়ী এবং কোডের গুণমান উন্নত করে।
Guava লাইব্রেরি Java ডেভেলপমেন্টে স্ট্রিং (String) ব্যবহারের জন্য বেশ কিছু সহায়ক ইউটিলিটি প্রদান করে, যার মধ্যে Strings.isNullOrEmpty() এবং Strings.commonPrefix() দুটি গুরুত্বপূর্ণ ফাংশন। এই দুটি মেথড স্ট্রিং সংক্রান্ত বেশ কিছু সাধারণ কাজকে আরও সহজ এবং কার্যকরী করে তোলে।
Strings.isNullOrEmpty() মেথড
Strings.isNullOrEmpty() মেথডটি একটি স্ট্রিং মান যাচাই করার জন্য ব্যবহৃত হয়, এবং এটি চেক করে যে স্ট্রিংটি null অথবা খালি (empty) কিনা। এটি স্ট্রিংয়ের মানের ওপর ভিত্তি করে একটি বুলিয়ান (Boolean) ফলাফল প্রদান করে।
ব্যবহার
nullচেক: এটিnullস্ট্রিং চেক করতে সাহায্য করে।- খালি স্ট্রিং চেক: এটি একটি খালি স্ট্রিং (
"") চেক করতে ব্যবহৃত হয়। - এটা সহজে কোডের পারফরম্যান্স বাড়াতে সাহায্য করে, কারণ
nullএবং খালি স্ট্রিং এর মধ্যে পার্থক্য চিহ্নিত করতে সময় এবং কোড কম লাগে।
উদাহরণ:
import com.google.common.base.Strings;
public class GuavaExample {
public static void main(String[] args) {
String str1 = null;
String str2 = "";
String str3 = "Hello, World!";
System.out.println(Strings.isNullOrEmpty(str1)); // true
System.out.println(Strings.isNullOrEmpty(str2)); // true
System.out.println(Strings.isNullOrEmpty(str3)); // false
}
}
এই কোডটি দেখায় যে Strings.isNullOrEmpty() মেথডটি null এবং খালি স্ট্রিংকে সঠিকভাবে চিহ্নিত করে।
Strings.commonPrefix() মেথড
Strings.commonPrefix() মেথডটি দুটি স্ট্রিংয়ের মধ্যে সর্বাধিক সাধারণ পূর্ববর্তী অংশ (common prefix) বের করে দেয়। এটি স্ট্রিংগুলির মধ্যে যে অংশটি প্রথমে মিলেছে, সেটি ফিরিয়ে দেয়। যদি দুটি স্ট্রিংয়ের মধ্যে কোনো মিল না থাকে, তবে এটি একটি খালি স্ট্রিং ফেরত দেয়।
ব্যবহার
- স্ট্রিং তুলনা: যখন দুটি স্ট্রিংয়ের মধ্যে প্রথম অংশটি চেক করতে হয়, তখন এটি খুবই সহায়ক।
- ফাইল বা ডিরেক্টরি পথের মিল নির্ণয়: ফাইল পাথ বা ডিরেক্টরি পাথের মধ্যে সাধারণ অংশ বের করতে ব্যবহার করা যায়।
- স্ট্রিং প্রিপেন্ড চেক: দুটি স্ট্রিংয়ের মধ্যে কীভাবে একটি স্ট্রিং আরেকটির প্রিপেন্ড (prefix) হতে পারে, তা চিহ্নিত করতে সাহায্য করে।
উদাহরণ:
import com.google.common.base.Strings;
public class GuavaExample {
public static void main(String[] args) {
String str1 = "guava_tech";
String str2 = "guava_tools";
System.out.println(Strings.commonPrefix(str1, str2)); // "guava"
}
}
এই কোডটি দেখায় যে দুটি স্ট্রিংয়ের মধ্যে সর্বাধিক সাধারণ পূর্ববর্তী অংশ "guava"।
Strings.isNullOrEmpty() এবং Strings.commonPrefix() এর সুবিধা
- কোডের ক্লিনলিনেস বৃদ্ধি: এই মেথডগুলি কোড লেখা সহজ করে এবং তা পরিষ্কার রাখে, কারণ তারা
nullবা খালি স্ট্রিং চেক করার জন্য এক্সট্রা কোড যোগ করতে বাধ্য করে না। - কার্যকারিতা বৃদ্ধি:
Strings.isNullOrEmpty()স্ট্রিংয়ের অবস্থা দ্রুত যাচাই করার জন্য দ্রুত এবং কার্যকরী পদ্ধতি প্রদান করে, যেখানেStrings.commonPrefix()স্ট্রিংয়ের সাধারণ অংশ বের করার জন্য উন্নত এবং কার্যকরী পদ্ধতি প্রদান করে। - ব্যবহারিক প্রয়োগ: এই দুটি ফাংশন বাস্তব দুনিয়ার সমস্যা যেমন ফাইল সিস্টেম, ইউজার ইনপুট যাচাই এবং বিভিন্ন ধরনের ডেটা সেভ করতে কার্যকরীভাবে ব্যবহৃত হতে পারে।
Guava লাইব্রেরি Java প্রোগ্রামিংয়ে স্ট্রিং সম্পর্কিত সাধারণ কাজগুলি সোজা করে তোলে, এবং এটি ডেভেলপারদের জন্য অনেক সময় বাঁচায়।
Guava লাইব্রেরি Java ডেভেলপারদের জন্য অনেক শক্তিশালী ইউটিলিটি প্রদান করে, যার মধ্যে একটি গুরুত্বপূর্ণ বিষয় হলো String Joining এবং Splitting। এটি আপনাকে সহজে এবং কার্যকরভাবে স্ট্রিংগুলোকে যুক্ত (join) এবং ভেঙে (split) ফেলার সুবিধা দেয়। Guava এর সাহায্যে আপনি স্ট্রিং অপারেশনগুলো আরও সুন্দর এবং পরিষ্কারভাবে করতে পারবেন, যা Java এর স্ট্যান্ডার্ড লাইব্রেরির তুলনায় আরো কার্যকরী ও নমনীয়।
এখানে আমরা Guava ব্যবহার করে String Joining এবং Splitting এর কৌশল নিয়ে আলোচনা করব।
String Joining এর কৌশল
Guava লাইব্রেরি String joining এর জন্য Joiner ক্লাস প্রদান করে, যা স্ট্রিংগুলোর মধ্যে নির্দিষ্ট বিভাজক (delimiter) যোগ করে এবং স্ট্রিংগুলোকে একত্রিত করতে সহায়ক।
Joiner.on()
Joiner.on()মেথডের মাধ্যমে আপনি একটি নির্দিষ্ট বিভাজক দিয়ে স্ট্রিংগুলিকে একত্রিত করতে পারেন। এটি একটি সহজ এবং প্রাঙ্কটিক্যাল পদ্ধতি।
উদাহরণ:
import com.google.common.base.Joiner; public class JoinExample { public static void main(String[] args) { // String গুলোকে কমা দিয়ে যোগ করা String result = Joiner.on(", ").join("Apple", "Banana", "Cherry"); System.out.println(result); // আউটপুট হবে: Apple, Banana, Cherry } }Null Safety
Joiner.on()মেথডটি ডিফল্টভাবেnullমানকে উপেক্ষা (ignore) করে। তবে আপনি চাইলেnullমানকেও একটি ডিফল্ট মান দিয়ে প্রতিস্থাপন করতে পারেন।
উদাহরণ:
String result = Joiner.on(", ").skipNulls().join("Apple", null, "Banana"); System.out.println(result); // আউটপুট হবে: Apple, Bananaঅথবা,
nullমানগুলিকে একটি নির্দিষ্ট টেক্সট দিয়ে প্রতিস্থাপন করা:String result = Joiner.on(", ").useForNull("Unknown").join("Apple", null, "Banana"); System.out.println(result); // আউটপুট হবে: Apple, Unknown, Banana
String Splitting এর কৌশল
Guava লাইব্রেরি String splitting এর জন্য Splitter ক্লাস প্রদান করে। এটি স্ট্রিং ভেঙে নির্দিষ্ট বিভাজক বা নিয়ম অনুসারে স্ট্রিং এর একটি সংগ্রহ তৈরি করে।
Splitter.on()
Splitter.on()মেথড দিয়ে আপনি একটি নির্দিষ্ট সিম্বল বা চরিত্র দিয়ে স্ট্রিংকে ভাগ করতে পারেন।
উদাহরণ:
import com.google.common.base.Splitter; public class SplitExample { public static void main(String[] args) { // কমা দিয়ে স্ট্রিংটি বিভক্ত করা Iterable<String> result = Splitter.on(", ").split("Apple, Banana, Cherry"); for (String s : result) { System.out.println(s); } // আউটপুট হবে: // Apple // Banana // Cherry } }Split by Regular Expressions
Splitterশুধু নির্দিষ্ট সিম্বল নয়, আপনি রেগুলার এক্সপ্রেশন (regular expression) দিয়েও স্ট্রিং ভাগ করতে পারেন।
উদাহরণ:
Iterable<String> result = Splitter.onPattern("\\s*,\\s*").split("Apple, Banana, Cherry"); for (String s : result) { System.out.println(s); }Trim Results
Splitterদিয়ে স্ট্রিং ভেঙে নেওয়ার পর আপনি চাইলে প্রতিটি উপাদানের আশেপাশের স্পেস (whitespace) কাটতে পারেন। Guava এরtrimResults()মেথড এর মাধ্যমে আপনি এটি করতে পারবেন।
উদাহরণ:
Iterable<String> result = Splitter.on(", ").trimResults().split(" Apple , Banana , Cherry "); for (String s : result) { System.out.println(s); } // আউটপুট হবে: // Apple // Banana // CherryLimit the Number of Results
Splitterদিয়ে স্ট্রিংটি নির্দিষ্ট সংখ্যক অংশে ভাগ করতে পারবেন। এর জন্যlimit()মেথডটি ব্যবহার করা হয়।
উদাহরণ:
Iterable<String> result = Splitter.on(", ").limit(2).split("Apple, Banana, Cherry"); for (String s : result) { System.out.println(s); } // আউটপুট হবে: // Apple // Banana, CherryHandling Empty Strings
- Guava লাইব্রেরি
Splitterএর মাধ্যমে খালি স্ট্রিংগুলি হ্যান্ডল করতে সহায়ক ফিচার প্রদান করে। আপনি চাইলে খালি উপাদানগুলিকে উপেক্ষা করতে পারেন বা রাখতে পারেন।
উদাহরণ:
Iterable<String> result = Splitter.on(",").omitEmptyStrings().split("Apple,,Banana,,Cherry"); for (String s : result) { System.out.println(s); } // আউটপুট হবে: // Apple // Banana // Cherry- Guava লাইব্রেরি
Guava লাইব্রেরি String Joining এবং Splitting এর জন্য অত্যন্ত শক্তিশালী এবং নমনীয় টুলস সরবরাহ করে। Joiner এবং Splitter ক্লাস ব্যবহার করে আপনি স্ট্রিং অপারেশনগুলো অনেক সহজ ও কার্যকরীভাবে করতে পারবেন। Guava এর এই ফিচারগুলো Java ডেভেলপমেন্টে স্ট্রিং ম্যানিপুলেশনকে আরও পরিষ্কার এবং সহজ করে তোলে।
Guava লাইব্রেরি জাভাতে স্ট্রিং ম্যানিপুলেশনকে সহজ, কার্যকরী এবং দ্রুত করে তোলে। এর মধ্যে কিছু শক্তিশালী ফিচার রয়েছে, যা স্ট্রিং অপারেশনকে আরও পরিষ্কার ও কোডিংয়ের কাজকে আরও সহজ করে তোলে। এই নিবন্ধে Guava ব্যবহার করে স্ট্রিং ম্যানিপুলেশনের কিছু বেস্ট প্র্যাকটিস (Best Practices) আলোচনা করা হলো।
Guava ব্যবহার করে স্ট্রিং ম্যানিপুলেশন
Guava লাইব্রেরি স্ট্রিং ম্যানিপুলেশনের জন্য বেশ কিছু ইউটিলিটি প্রদান করে, যার মাধ্যমে আপনি স্ট্রিং নিয়ে কাজ করার সময় কোডকে সহজ ও ম্যানেজেবল রাখতে পারেন। এর মধ্যে প্রধান ফিচার গুলি হলো Joiner, Splitter, Strings এবং CharMatcher। এই সব ফিচার ব্যবহার করে আপনি আরও সুন্দর ও কার্যকরী কোড লিখতে পারবেন।
১. Joiner ব্যবহার করা
Joiner একটি Guava ক্লাস যা স্ট্রিংগুলিকে একত্রিত করতে ব্যবহার করা হয়। এটি বিশেষ করে ব্যবহারযোগ্য যখন আপনি একটি কোলেকশন (যেমন লিস্ট, সেট) থেকে স্ট্রিং একত্রিত করতে চান।
Best Practice:
Joinerব্যবহার করে সহজে কোলেকশন থেকে স্ট্রিং একত্রিত করুন।- প্রয়োজনীয় ক্ষেত্রে কাস্টম ডেলিমিটার ব্যবহার করুন।
উদাহরণ
import com.google.common.base.Joiner;
import java.util.List;
public class JoinerExample {
public static void main(String[] args) {
List<String> fruits = List.of("Apple", "Banana", "Cherry");
// ডিফল্ট ডেলিমিটার দিয়ে স্ট্রিং একত্রিত করা
String result = Joiner.on(", ").join(fruits);
System.out.println(result); // Output: Apple, Banana, Cherry
// নাল ভ্যালু সহ ডেটার জন্য Joiner ব্যবহার
List<String> fruitsWithNull = List.of("Apple", null, "Banana");
String resultWithNull = Joiner.on(", ").skipNulls().join(fruitsWithNull);
System.out.println(resultWithNull); // Output: Apple, Banana
}
}
Best Practice:
skipNulls()ব্যবহার করে নাল মানগুলিকে এড়িয়ে চলুন।on()মেথডে ডেলিমিটার হিসেবে কাস্টম চিহ্ন ব্যবহার করুন (যেমন: কমা, স্পেস, সেমিকোলন)।
২. Splitter ব্যবহার করা
Splitter Guava লাইব্রেরির একটি শক্তিশালী ফিচার যা একটি স্ট্রিংকে নির্দিষ্ট ডেলিমিটার দ্বারা বিভক্ত করতে সহায়তা করে। এটি স্ট্রিং স্প্লিটিংয়ের কাজ সহজ করে তোলে।
Best Practice:
- একাধিক ডেলিমিটার দিয়ে স্ট্রিং বিভক্ত করার জন্য
Splitterব্যবহার করুন। - স্প্লিট করার পর নাল বা খালি স্ট্রিং ফিল্টার করতে
omitEmptyStrings()ব্যবহার করুন।
উদাহরণ
import com.google.common.base.Splitter;
public class SplitterExample {
public static void main(String[] args) {
String fruits = "Apple, Banana, Cherry, ";
// স্প্লিট করা এবং খালি স্ট্রিং ফিল্টার করা
Iterable<String> result = Splitter.on(", ").omitEmptyStrings().split(fruits);
for (String fruit : result) {
System.out.println(fruit);
}
// Output: Apple, Banana, Cherry
}
}
Best Practice:
omitEmptyStrings()ব্যবহার করে খালি স্ট্রিং গুলি ফিল্টার করুন।- একাধিক ডেলিমিটার ব্যবহার করতে
Splitter.onPattern()ব্যবহার করুন।
৩. Strings ক্লাস ব্যবহার করা
Guava এর Strings ক্লাস কিছু সাধারণ স্ট্রিং সম্পর্কিত কাজ সহজ করে তোলে, যেমন স্ট্রিং চেক করা বা স্ট্রিংকে একটি নির্দিষ্ট দৈর্ঘ্যে পূর্ণ করা।
Best Practice:
- স্ট্রিং নাল বা খালি কি না চেক করতে
Strings.isNullOrEmpty()ব্যবহার করুন। - স্ট্রিংকে নির্দিষ্ট দৈর্ঘ্যে পূর্ণ করতে
Strings.padStart()অথবাStrings.padEnd()ব্যবহার করুন।
উদাহরণ
import com.google.common.base.Strings;
public class StringsExample {
public static void main(String[] args) {
String text = "Guava";
// স্ট্রিং খালি বা নাল কি না চেক করা
System.out.println(Strings.isNullOrEmpty(text)); // Output: false
// স্ট্রিং প্যাড করা
String paddedText = Strings.padStart(text, 10, '*');
System.out.println(paddedText); // Output: *****Guava
}
}
Best Practice:
- স্ট্রিং খালি বা নাল কী না তা চেক করতে
Strings.isNullOrEmpty()ব্যবহার করুন। padStart()এবংpadEnd()ব্যবহার করে স্ট্রিংয়ের দৈর্ঘ্য সমন্বয় করুন।
৪. CharMatcher ব্যবহার করা
CharMatcher Guava লাইব্রেরির একটি শক্তিশালী ক্লাস যা স্ট্রিংয়ের নির্দিষ্ট অক্ষর ফিল্টার করতে ব্যবহৃত হয়। এটি স্ট্রিংয়ের মধ্যে অক্ষর অনুসন্ধান, প্রতিস্থাপন এবং মুছে ফেলতে সহায়তা করে।
Best Practice:
- অক্ষর ফিল্টার করার জন্য
CharMatcherব্যবহার করুন। - স্ট্রিং থেকে অপ্রয়োজনীয় অক্ষর (যেমন, স্পেস বা পাংকচুয়েশন) মুছে ফেলতে
CharMatcherব্যবহার করুন।
উদাহরণ
import com.google.common.base.CharMatcher;
public class CharMatcherExample {
public static void main(String[] args) {
String text = "Hello, Guava! ";
// অপ্রয়োজনীয় স্পেস মুছে ফেলা
String noSpaces = CharMatcher.whitespace().removeFrom(text);
System.out.println(noSpaces); // Output: Hello,Guava!
// শুধুমাত্র অক্ষর রেখে বাকি সব মুছে ফেলা
String onlyLetters = CharMatcher.JAVA_LETTERS.retainFrom(text);
System.out.println(onlyLetters); // Output: HelloGuava
}
}
Best Practice:
- স্ট্রিং থেকে অপ্রয়োজনীয় অক্ষর মুছে ফেলার জন্য
CharMatcherব্যবহার করুন। - শুধুমাত্র নির্দিষ্ট ধরনের অক্ষর রাখতে
retainFrom()ব্যবহার করুন।
সারাংশ
Guava লাইব্রেরি জাভাতে স্ট্রিং ম্যানিপুলেশনের জন্য অত্যন্ত কার্যকরী এবং সহজ টুল সরবরাহ করে। এর Joiner, Splitter, Strings, এবং CharMatcher ক্লাসগুলি স্ট্রিং অপারেশনগুলিকে আরও শক্তিশালী, পরিষ্কার এবং ম্যানেজেবল করে তোলে। এসব বেস্ট প্র্যাকটিস ব্যবহার করে আপনি আপনার কোডকে আরও পরিষ্কার, দক্ষ এবং রিডেবল করতে পারবেন। Guava-র এই ফিচারগুলোর মাধ্যমে স্ট্রিং সম্পর্কিত প্রায় সকল অপারেশন সহজেই পরিচালনা করা সম্ভব।
Read more